﻿namespace OverStore.Configuration.Validation
{
    /// <summary>
    /// Component that support validation. The Validate method
    /// calls for validation.
    /// </summary>
    public interface ISupportValidation
    {
        /// <summary>
        /// Perform component validation. Method should validate only 
        /// component configuration itself, not sub components.
        /// If configuration is valid, null result should returns.
        /// </summary>
        /// <returns>
        /// <see cref="T:OverStore.Configuration.Validation.ValidationResults"/> describes errors found in component configuration.
        /// </returns>
        ValidationResult Validate();
    }
}